import 'package:flutter/material.dart';
import 'package:sharecommmunit/utils/eventbus.dart';
import 'package:sharecommmunit/utils/http.dart';
import 'package:sharecommmunit/utils/toast.dart';

import '../../utils/token.dart';

class MinePage extends StatefulWidget {
  const MinePage({super.key, required this.currentIndex});

  final int currentIndex;

  @override
  State<MinePage> createState() => _MinePageState();
}

class _MinePageState extends State<MinePage> {
  Map userInfo = {'avatar': '', 'nickname': '', 'id': ''};
  getProfile() async {
    var res = await http.get('/userInfo');
    if (res['code'] != 10000) return ToastUtil.showError('获取数据失败');
    setState(() {
      userInfo = res['data'];
      if (userInfo['avatar'] == null) {
        userInfo['avatar'] = '';
      }
      if (userInfo['nickName'] == null) {
        userInfo['nickName'] = '';
      }
    });
  }

  // 菜单数据
  final List menuList = [
    {"title": "我的房屋", "icon": "images/house_profile_icon@2x.png"},
    {"title": "我的报修", "icon": "images/repair_profile_icon@2x.png"},
    {"title": "访客记录", "icon": "images/visitor_profile_icon@2x.png"},
  ];
  @override
  void didUpdateWidget(covariant MinePage oldWidget) {
    super.didUpdateWidget(oldWidget);
    if (widget.currentIndex == 1) {
      // TODO: 调用接口获取数据
      getProfile();
    }
  }

  @override
  void initState() {
    super.initState();
    eventBus.on<RefreshMine>().listen((event) {
      getProfile();
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: const Color.fromARGB(200, 85, 145, 175),
      appBar: AppBar(
        title: const Text('我的', style: TextStyle(color: Colors.white)),
        backgroundColor: Colors.transparent,
        centerTitle: true,
      ),
      body: ListView(
        children: [
          // 个人信息
          Container(
            padding: const EdgeInsets.all(10),
            child: GestureDetector(
              onTap: () {
                 Navigator.pushNamed(context, '/profile', arguments: userInfo);
              },
              child: Row(
                children: [
                  ClipRRect(
                    borderRadius: BorderRadius.circular(50.0),
                    child:
                        userInfo['avatar'] != ''
                            ? Image.network(
                              userInfo['avatar'],
                              width: 50,
                              height: 50,
                            )
                            : Image.asset(
                              'images/avatar_1.jpg',
                              width: 50,
                              height: 50,
                            ),
                  ),
                  const SizedBox(width: 10),
                  Text(
                    userInfo['nickName'] ?? '用户名',
                    style: const TextStyle(fontSize: 16, color: Colors.white),
                  ),
                  const Spacer(),
                  const Text('去完善信息', style: TextStyle(color: Colors.white)),
                  const Icon(
                    Icons.arrow_forward_ios,
                    color: Colors.white,
                    size: 13,
                  ),
                ],
              ),
            ),
          ),
          Container(
            padding: const EdgeInsets.all(15),
            margin: const EdgeInsets.symmetric(vertical: 20, horizontal: 10),
            decoration: BoxDecoration(
              color: Colors.white,
              borderRadius: BorderRadius.circular(10),
            ),
            child: Column(
              children: [
                ...menuList
                    .map(
                      (item) => SizedBox(
                        height: 50,
                        child: Row(
                          children: [
                            Row(
                              children: [
                                Image.asset(
                                  item['icon'],
                                  width: 20,
                                  height: 20,
                                ),
                                const SizedBox(width: 10),
                                Text(
                                  item['title'],
                                  style: const TextStyle(fontSize: 16),
                                ),
                              ],
                            ),
                            const Spacer(),
                            const Icon(
                              Icons.arrow_forward_ios,
                              size: 12,
                              color: Colors.grey,
                            ),
                          ],
                        ),
                      ),
                    )
                    .toList(),
                ElevatedButton(
                  onPressed: () {
                    TokenManager().saveToken('test token~');
                  },
                  child: const Text('存储token'),
                ),
                const SizedBox(height: 20),
                ElevatedButton(
                  onPressed: () {
                    TokenManager().removeToken();
                  },
                  child: const Text('删除token'),
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}
